package cn.stylefeng.guns.modular.business.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.*;
import java.util.Date;

@ApiModel(value="cn-stylefeng-guns-modular-business-dto-DeviceUpdateDto")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DeviceUpdateDto {

    @TableId(value = "id", type = IdType.AUTO)
    @NotNull(message = "id不能为空")
    @ApiModelProperty(value="主键id")
    private Integer id;

    /**
     * 厂家编号、品牌编号，方便搜索
     */
    @TableField(value = "device_brand_id")
    @NotNull(message = "品牌编号不能为空")
    @ApiModelProperty(value="品牌编号")
    private Integer deviceBrandId;

    /**
     * 设备品牌。如海康、新驰、宇叶
     */
    @TableField(value = "device_brand")
    @ApiModelProperty(value="品牌名称")
    private String deviceBrand;

    /**
     * 厂家出厂的设备序列号
     */
    @TableField(value = "device_sn")
    @NotBlank(message = "设备编号不能为空")
    @ApiModelProperty(value="设备编号")
    @Size(max = 64,min = 0,message = "设备编号最大长度不能超过64")
    private String deviceSn;

    /**
     * 设备类型，1是塔吊、2是升降机、3是吊钩可视化、4是AI服务器、5是监控摄像头，6是用电监测设备
     */
    @TableField(value = "device_type")
    @NotNull(message = "设备类型不能为空")
    @ApiModelProperty(value="设备类型")
    @Max(value = 6,message = "设备类型不能超过6")
    @Min(value = 1,message = "设备类型不能小于1")
    private Integer deviceType;

    /**
     * 最后在线时间
     */
    @TableField(value = "device_last_time")
    @ApiModelProperty(value="最后在线时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd ")
    private Date deviceLastTime;

    /**
     * 0是未启用，1是启用
     */
    @TableField(value = "status")
    @ApiModelProperty(value="状态（0未启用,1启用）")
    private Integer status;

    /**
     * 备注
     */
    @TableField(value = "remarks")
    @ApiModelProperty(value="备注")
    private String remarks;

    /**
     * 入库时间
     */
    @TableField(value = "create_time")
    private String createTime;

    /**
     * 最后更新时间
     */
    @TableField(value = "last_time")
    private Date lastTime;


}
